package br.com.sgpv2.hibernate.dependente;

import java.util.List;

import br.com.sgpv2.controler.NegocioExeception;
import br.com.sgpv2.entity.dependente.Dependente;
import br.com.sgpv2.entity.pessoa.Pessoa;

/**
 * Interface do reposit�rio de Dependente.
 */
public interface DependenteRepository {

	/** Método que salva uma entidade dependente no banco de dados. */
	void salvar(Dependente dependente);

	/** Método que busca uma entidade dependente no banco de dados. */
	Dependente buscar(Integer pk) throws NegocioExeception;

	/** Método que altera uma entidade dependente no banco de dados. */
	void alterar(Dependente dependente);

	/** Método que altera uma entidade dependente no banco de dados. */
	void saveOrUpdate(Dependente dependente);

	/** Método que lista todas as entidades dependente no banco de dados. */
	List<Dependente> listar();

	/** Método que exclui uma entidade dependente no banco de dados. */
	void excluir(Dependente dependente);

	/** Método consulta todos os dependentes de uma determinada pessoa(titular). */
	List<Dependente> consultarPorTitular(Pessoa pessoa);

}
